package com.ly.demo.taach.jdbc.bean;

import java.util.List;

/**
 * 	分页实体类, 注意: 页数从1开始计数, 默认每页10行
 * 	E 是泛型类, 表示该分页对象内部存放的数据类型, 例如: Map 或 实体类
 */
public class Page<E> {

	/**
	 * 	当前页数
	 */
	private int page = 1;
	/**
	 * 	每页行数
	 */
	private int size = 10;
	/**
	 * 	结果集总记录数
	 */
	private int rows;
	/**
	 * 	结果集总页数
	 */
	private int pages;
	/**
	 * 	查询到当前页的数据
	 */
	private List<E> data;

	public Page(int page, int size) {
		this.page = page;
		this.size = size;
	}

	public void setData(List<E> data, int rows) {
		this.data = data;
		this.rows = rows;
		// 计算总页数
		this.pages = rows / size;
		pages += rows % size == 0 ? 0 : 1;
	}

	/**
	 * 	返回前后页的页码
	 * @return
	 */
	public int nextPage() {
		return page == pages ? page : (page + 1);
	}

	/**
	 * 	返回前一页的页码
	 * @return
	 */
	public int priorPage() {
		return page == 1 ? page : (page - 1);
	}

	public int getPage() {
		return page;
	}

	public int getSize() {
		return size;
	}

	public int getRows() {
		return rows;
	}

	public int getPages() {
		return pages;
	}

	public List<E> getData() {
		return data;
	}

}
